// 商品相关API接口
import { get, post } from './request.js'
import env from '@/config/env.js'

// 商品API - 使用lkshop模块
export const goodsApi = {
  // 获取商品列表
  getGoodsList(params) {
    // 使用lkshop模块的商品接口，直接使用网关地址
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/good/list'
    return get(lkshopUrl, params)
  },
  
  // 获取商品详情
  getGoodsDetail(goodsId) {
    const lkshopUrl = env.GATEWAY_URL + `/lkshop/good/${goodsId}`
    return get(lkshopUrl)
  },
  
  // 获取商品SKU列表
  getGoodsSkuList(goodsId) {
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/sku/list'
    return get(lkshopUrl, { goodsId: goodsId })
  },
  
  // 搜索商品 - 使用Elasticsearch搜索
  async searchGoods(keyword, params = {}) {
    console.log('searchGoods被调用，关键词:', keyword, '参数:', params);
    try {
      // 优先使用Elasticsearch搜索
      const searchParams = {
        keyword: keyword,
        pageNum: params.pageNum || 1,
        pageSize: params.pageSize || 10
      }
      const searchUrl = env.GATEWAY_URL + '/lkshop/search/goods'
      console.log('调用Elasticsearch搜索API:', searchUrl, '参数:', searchParams);
      const result = await get(searchUrl, searchParams)
      
      // 如果ES搜索成功且有结果，直接返回
      if (result && result.code === 200 && result.data && result.data.rows) {
        console.log('使用Elasticsearch搜索成功:', result.data)
        return result.data
      }
      
      // 如果ES搜索失败或无结果，回退到数据库搜索
      console.log('Elasticsearch搜索无结果，回退到数据库搜索')
      return await this.searchGoodsFromDB(keyword, params)
      
    } catch (error) {
      console.error('Elasticsearch搜索失败，回退到数据库搜索:', error)
      // 搜索失败时回退到数据库搜索
      return await this.searchGoodsFromDB(keyword, params)
    }
  },
  
  // 数据库搜索商品（备用方案）
  searchGoodsFromDB(keyword, params = {}) {
    const searchParams = {
      goodsName: keyword,
      ...params
    }
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/good/list'
    return get(lkshopUrl, searchParams)
  },
  
  // 获取热门商品
  getHotGoods(params = {}) {
    const hotParams = {
      goodsStatus: 1, // 上架状态
      ...params
    }
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/good/list'
    return get(lkshopUrl, hotParams)
  },
  
  // 获取秒杀商品
  getFlashSaleGoods(params = {}) {
    const flashParams = {
      goodsKillType: 1, // 秒杀商品
      goodsStatus: 1,   // 上架状态
      ...params
    }
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/good/list'
    return get(lkshopUrl, flashParams)
  },
  
  // 获取折扣商品
  getDiscountGoods(params = {}) {
    const discountParams = {
      goodsDiscountType: 1, // 折扣商品
      goodsStatus: 1,       // 上架状态
      ...params
    }
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/good/list'
    return get(lkshopUrl, discountParams)
  },
  
  // 获取商品详情描述
  getGoodsMessage(goodsId) {
    const lkshopUrl = env.GATEWAY_URL + `/lkshop/message/goods/${goodsId}`
    return get(lkshopUrl)
  },
  
  // 获取店铺商品列表
  getStoreGoods(businessId, params = {}) {
    const storeParams = {
      businessId: businessId,
      goodsStatus: 1, // 上架状态
      pageSize: 6,    // 获取6个商品
      ...params
    }
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/good/list'
    return get(lkshopUrl, storeParams)
  }
}
 
// 商品分类API - 使用lkshop模块
export const goodsClassApi = {
  // 获取商品分类列表
  getGoodsClassList() {
    const lkshopUrl = env.GATEWAY_URL + '/lkshop/goodsClass/list'
    return get(lkshopUrl)
  }
}

// 商家API - 使用lkshop模块
export const businessApi = {
  // 获取商家详情
  // getBusinessDetail(businessId) {
  //   const businessUrl = env.GATEWAY_URL + `/lkshop/business/${businessId}`
  //   return get(businessUrl)
  // },
  
  // 获取商家信息（简化版）
  getBusinessInfo(businessId) {
    const businessUrl = env.GATEWAY_URL + `/lkshop/shop/${businessId}`
    return get(businessUrl)
  }
}

// 默认导出
export default goodsApi 